Thursday, May 14, 2026
b860ebdd-c64b-40e9-8530-ea64342b2ad0
| Summary | ⛅️ Partly cloudy until night. |
|---|---|
| Temperature Range | 18°C to 24°C (65°F to 76°F) |
| Feels Like | Low: 63°F | High: 79°F |
| Humidity | 72% |
| Wind | 15 km/h (9 mph), Direction: 203° |
| Precipitation | Probability: 17%, Type: No precipitation expected |
| Sunrise / Sunset | 🌅 05:46 AM / 🌇 07:42 PM |
| Moon Phase | Waning Crescent (91%) |
| Cloud Cover | 47% |
| Pressure | 1008.08 hPa |
| Dew Point | 60.9°F |
| Visibility | 6.17 miles |
Cultural events, International Museum Day, a street food party, floral festivals and music hidden in village corners
Friday events
As the work week ends, Friday night rolls in with guitar sounds at Savino Live. The popular Larnaca music venue welcomes guitar virtuosos Irene Ketikidi, Bob Saganas and MARANG for a special guitar showcase. Get ready for an instrumental evening dedicated to the diversity of guitars. Ketikidi brings high-impact rock, Saganas brings progressive metal mastery, and MARANG is full of heavy jazz-fusion. The music starts at 9.30pm.
Bookworms and logophiles in Nicosia can enjoy another two days of the Soloneion Outdoor Book Bazaar this Friday and Saturday. The book centre sets up stalls outside its shop offering discounts on a range of books.
Saturday events
Saturday afternoon celebrates International Museum Day a little early, as the official day is on May 18, as the Severis-CVAR Foundation offers a free guided tour of the museum, led by Dr Rita Severis. The tour begins at 2pm and although cost-free for attendants, registration is necessary.
The neighbourhood of Ayioi Omologites puts its communal spirit forward and hosts the Dance, Dance in the Neighbourhood festival. Closing the main street of the old neighbourhood, dance workshops will be hosted from 5.30pm onwards with musicians bringing the traditions of Cyprus, Greece, southern Italy and Asia Minor to life. Following the workshops, a glenti fiesta will bring people together in the church courtyard, continuing the fun.
A little later in the evening, another event takes place in Nicosia’s old town. The AKORA Street Food Party is back at Municipality Square with select street food, signature cocktails, cool beers and tunes by DJs.
A little further away from city life, in the charming village of Vavla, another edition of the local Musical Promenade returns this Saturday. Back to honour this now-annual tradition, the event welcomes visitors to enjoy live music concerts by selected island musicians at different locations around the village. A map will be offered so that listeners can make their way around and find the different performances. Street food, a cocktail bar and a small market with local products will also be set up throughout the evening.
Weekend-long events
Some events last all weekend long, and the 18th Agros Rose Festival is one of them. This is the festival’s second weekend, continuing to share its fragrant roses in all shapes and forms. Markets, music, dances, visits to the rose factory and rose-picking at dawn are but a few of the activities visitors can enjoy this Saturday and Sunday at Agros.
Those in Limassol have a lot to take in as the 2nd Vima Art Fair presents its packed programme. Technically, the Fair begins on Friday and runs until Sunday with exhibitions, installations and performances at The Warehouse by IT. But that’s not all. The events and actions this year extend throughout Limassol, Nicosia, Foinikaria and Platres.
Every corner of Cyprus has something fun in store for this weekend. Ayia Napa Marina welcomes back the Chef’s Kiss Food Festival with a rich selection of culinary tastes and experiences. Think food demonstrations by chefs, live music, hands-on workshops and much more.
Ending the week with a good dose of laughter is a three-day event that promises to deliver just that. From Friday to Sunday, the Laughter Festival has stand-up comedians and theatre performances for old and young, offering a much-needed comic escape this weekend.
An Evening of Guitar
Guitar showcase by virtuoso musicians Irene Ketikidi, Bob Saganas, and MARANG. May 15. Savino Live, Larnaca. 9.30pm. €12
Soloneion Outdoor Book Bazaar
Up to 80% discount on children’s books, fiction, poetry, history, travel guides and more. May 15-16. Soloneion Book Centre, Nicosia. Fridays: 5pm-9pm. Saturday: 9am-6pm
International Museum Day
Guided museum tour by Dr Rita Severis. May 16. Severis-CVAR Foundation, Nicosia. 2pm. Free. Reservations necessary. Tel: 22-300994. info@severis.org
AKORA Street Food Party
Street food, cocktails, beers and a DJ. May 16 and 30. June 13 and 27. Municipality Square, Nicosia. 7pm-12am
Musical Promenade in Vavla
Live music, street food, art market and more. May 16. Vavla village, Larnaca district. 5.30pm-12am. Free admission. Facebook event: Musical Promenade in Vavla
18th Agros Rose Festival
Annual village festival with rose flower activities, markets and live entertainment. May 16-17. Agros village, Limassol district. Tel: 25-521333. www.rosefest.agros.org.cy
2nd Vima Art Fair
International contemporary art fair with Cyprus and global galleries with exhibitions, talks, meetings and more. May 14-17. The Warehouse by IT Quarter, Limassol. www.vima.art
Dance, Dance in the Neighbourhood
Traditional music and dance workshops from Cyprus, Greece, southern Italy and Asia Minor. May 16. Ayioi Omologites, Nicosia. 5.30pm -7pm. Free admission
Chef’s Kiss
Food festival with live cooking stations, workshops and more. May 16-17. Ayia Napa Marina. For more information visit the Instagram page of the festival @chefskiss.cy
Laughter Festival
Comedy shows, children’s performances, theatre shows and more. May 15-17. Latsia Municipal Theatre, Nicosia. In Greek. Tel: 99-755489. https://buytickets.at/createeventscy
A forgotten Hong Kong martial arts film shot in Cyprus in the summer of 1990 is finding new life more than three decades later through a new documentary that is now heading to the Cannes Film Festival.
Tracking: the Cyprus Tigers, directed by Cypriot filmmaker Andreas Kyriacou and produced by Stavros Papageorgiou, has been officially selected for the Frontières Buyers Showcase at the 2026 Cannes Film Festival. The project will be presented on May 17 at the Palais des Festivals.
But the documentary is not really just about one obscure film, the original The Cyprus Tigers.
It is about memory. About growing up in Cyprus before streaming and smartphones, about the strange magic of video stores and VHS tapes, and about how a generation of young Cypriots discovered the world through cinema.
For director Andreas Kyriacou, the story could only have happened here.
“Cyprus has always been a strange and beautiful crossroads,” he says. “We are a small island, but culturally we have never been isolated.”
That feeling runs through the entire documentary. Tracking: the Cyprus Tigers begins with the mystery surrounding The Cyprus Tigers, a little known Hong Kong martial arts film shot in Cyprus in 1990, but slowly opens into something much bigger. It becomes a story about cultural exchange, forgotten connections and the lasting influence of Hong Kong cinema on audiences far from Asia.
For many people who grew up in Cyprus during the 1980s and 1990s, Hong Kong action films were not something distant or niche. They were part of everyday life.
“These films had a raw energy that spoke directly to young audiences,” Kyriacou says. “They were fast, physical, funny, emotional, dangerous and completely alive.”
At a time before algorithms and endless online libraries, discovering films felt personal. You walked into a video store, looked at covers, listened to recommendations and rented films almost at random.
“Film culture was slower, but in some ways more magical,” he says.
For many young Cypriots, the local video store became a window to the world.
“You could travel from Nicosia or Limassol to Hong Kong, New York, Tokyo, Rome or Los Angeles in one afternoon,” Kyriacou says. “It wasn’t just entertainment.”
The mystery around The Cyprus Tigers fascinated him for years. Some people remembered it vaguely. Others had seen poor quality bootleg VHS copies. Some knew people who had worked on the production. Over time, the film became almost mythical among local genre film fans.
“At first, it was the mystery,” he says. “It existed almost like a ghost in Cypriot pop culture.”
As production on the documentary continued, Kyriacou realised the story was becoming something much more emotional and personal than he expected.
“The Cyprus Tigers was only the doorway,” he says. “Behind it was a much bigger story about how cinema travelled before the internet and how young people in small places discovered the world through films.”
The journey eventually took the filmmakers beyond Cyprus to Croatia and finally to Hong Kong itself. Along the way, they uncovered surprising connections between Cyprus and other Hong Kong productions, including Jackie Chan’s Armour of God.
Filming concluded in Hong Kong, where the team interviewed legendary figures from the golden era of martial arts cinema, including Sammo Hung, Simon Yam and Alexander Chan.
For Kyriacou, returning the story to Hong Kong felt emotional.
“Suddenly the childhood memories of a Cypriot kid watching martial arts films on VHS were connected to the people and places where those films came from,” he says.
The documentary also became an attempt to preserve a hidden piece of Cypriot film history before it disappears.
“Cyprus has many hidden cinema stories, but they often survive only as memories, anecdotes, old photographs, or dusty VHS tapes,” Kyriacou says. “Once the people who lived them are gone, the stories disappear with them.”
Producer Papageorgiou describes the project as “a fascinating cultural bridge between Cyprus, Croatia, Hong Kong, and an entire generation raised on VHS cinema.”
Now, with the Cannes selection, the documentary is reaching a global audience.
The Frontières Buyers Showcase, organised in collaboration with the Fantasia International Film Festival, is considered one of the leading international platforms for genre cinema.
For Kyriacou, the recognition is also proof that Cypriot stories can travel far beyond the island while still remaining deeply local.
“Cyprus is not outside international film culture,” he says. “We were always part of it, even if our role was sometimes invisible.”
More than anything, Tracking: the Cyprus Tigers is a love letter to a generation shaped by video stores, late night screenings and accidental discoveries.
“Films are not just images on a screen,” Kyriacou says. “They are passports, time machines, emotional contraband.”
Turkish Cypriot leader Tufan Erhurman is to veto a law passed by the Turkish Cypriot legislature last week which criminalised the naming of high-profile individuals who appear in court accused of crimes, according to reports on Wednesday.
Newspaper Yeniduzen reported that Erhurman will send the law back to the legislature, which will then debate it again in the coming days.
Erhurman had said last week that he was “closely following discussions” on the matter, and that his office was set to “consult with all relevant parties and evaluate all opinions”.
“It is known that, in light of these evaluations, if deemed necessary, the presidency will not hesitate to exercise its constitutional powers, as it has done in previous instances,” he said, hinting at the possibility that he may veto the law.
The law had introduced jail sentences for those, including journalists, who take and publish photographs of suspects in and around courtrooms, or who publish the names of defendants, in the media or on social media, with the maximum sentence set at three months in prison or a fine amounting to four times the north’s monthly minimum wage.
At present, the north’s monthly minimum wage is 60,618TL (€1,144), with the fine as such set, for now, at 243,272TL (€4,577).
Opposition members had warned at the time that the law could have negative implications on the state of press freedom in the north, with the CTP’s Sami Ozuslu saying that “today, we boast that our journalists are not going to jail, but if this bill passes, the picture will change”.
“You are threatening them with prison. This will turn into an operation to silence journalists,” he added.
Others also expressed their opposition to the bill after it was passed, with former Turkish Cypriot leader Mustafa Akinci saying that “one cannot remain neutral on issues such as democracy, human rights, and freedom of the press and expression”.
“Not taking a stand on such matters draws the colour out of matters and fuels an appetite for deep darkness. A society where the press is silenced by fear cannot have a bright future,” he said.
Former Turkish Cypriot chief negotiator for the Cyprus problem Kudret Ozersay, meanwhile, lamented that the law had been passed “in a period in which corruption, fraud, bribery, and decay have increased and been exposed to such an extent”.
“This law change aims to prevent journalists from writing about these scandals and to prevent the public from knowing the full names or seeing the photographs of those accused,” he added.
He then said that “it is very clear that they want to both protect the politicians who will be tried in the near future and to intimidate and silence those who want to inform the public about it”.
However, not everyone was against the new law, with Cyprus Turkish bar association chairman Hasan Esendagli expressing his support for it during an appearance on public television channel BRT.
“The courts were out of control. It constitutes a violation of rights to corner people who have been declared guilty before they face trial, exposed, and who have been put in personally difficult situations, in court corridors, and have their photos taken,” he said.
The law’s passage came after multiple high-profile figures in the north have appeared in court and been charged with crimes in recent months, including former ‘education minister’ Kemal Durust, former Famagusta police chief Baris Sel, ‘prime minister’ Unal Ustel’s close personal associate Fatma Unal, Ustel’s now former undersecretary Huseyin Cahitoglu, the now former chief of the north’s tender commission Salih Cansec, the son of ruling coalition representative Hasan Tosunoglu, Ugur Tosunoglu, former chairman of the north’s higher education accreditation authority (Yodak) Turgay Avci, and board member Mehmet Hasguler, who is now the chief advisor of ruling coalition party the YDP.
Former Disy leader Averof Neophytou on Wednesday defended his decision to call on Israel to “finish the job” in its war with Iran, while also lambasting Akel for criticising his successor Annita Demetriou instead of addressing its criticism of the remark directly to him.
He wrote in a post on social media that Akel leader Stefanos Stefanou should “address and hear from me instead of asking … Demetriou”.
“A war has started in Iran. As a result of uncertainty, oil prices have skyrocketed. If this situation does not end, the global economy will go into recession. Again, the global crisis will not bypass Cyprus, which is already experiencing the effects on tourism,” he said.
He said that to this end, “I said, addressing the Israeli ambassador, that the one who started this situation must end it”, and that as such, Stefanou should “leave the tactics to one side” and “speak responsibly about serious issues”.
Video footage of Neophytou speaking at the conference was published on social media late on Tuesday night by Greek journalist Dimitri Lascaris, with the conference reportedly having also been attended by Israel’s Deputy Foreign Minister Sharren Haskel and ambassador in Athens Noam Katz.
The video begins with Neophytou saying that “this cooperation has deepened into a formal, strategic alignment, focusing on energy, infrastructure, joint defence efforts, and economic innovation, acting as a crucial feeder of stability in the region”, before he turns his attention to the war
“By the way, since you start the war, you have to finish the job, in order to secure the future stability, we must suffer the today’s cost, but it’s better to secure stability for the future and the young and new generation,” he said.
In response, Akel had said that “in other words, he called for the continuation and intensification of the United States’ and Israel’s war against Iran, a war which violates international law, poses nightmarish dangers for humanity, and has enormous economic consequences which are paid for by the states and peoples of our region”.
“Disy and [its leader] Annita Demetriou must answer whether they embrace Averof Neophytou’s statement, which is cut and sewn to the measurements of the extremists who govern the US and Israel. They must answer whether this is the foreign policy they desire,” it said.
It added that if Disy “does not care about human lives about human lives and international law”, the party “should at least care about the devastating consequences that the US’ and Israel’s war has for Cyprus and its economy, for which society is once again paying”.
Neophytou is not standing at the forthcoming parliamentary elections, having led the party into the elections of 2016 and 2021, at which the party was twice the largest in parliament.
He first became an MP in 1996 but resigned his seat in 1999 to become late president Glafcos Clerides’ communications minister, before returning to the House in 2006, where he remained until last month.
According to recent polling, Akel and Disy are once again expected to be the largest two parties in parliament after the forthcoming election, with Disy currently holding a small lead.
British Cypriot MP Nesil Caliskan has been appointed to a government post for the first time, being named by the country’s Prime Minister Sir Keir Starmer as the parliamentary undersecretary of state for devolution, faith, and communities.
She was appointed to the role on Tuesday night and formally undertook her duties on Wednesday, and is now responsible for regional devolution in England, local authorities, investment zones and freeports, and matters related to faith, among other things.
In being appointed, she became the first British Turkish Cypriot to undertake a government role, and said of her appointment that “it is an honour to accept” the post.
“Having been a council leader, I know how important councils are to transforming their local communities. I will work tirelessly to deliver the government’s agenda and will continue to represent my constituents in Barking and Dagenham,” she said, in reference to her east London constituency.
Turkish Cypriot leader Tufan Erhurman, meanwhile, said that “Caliskan’s new role in the British government is a source of great pride and significance for Turkish Cypriots living abroad”, and expressed his “appreciation” for her “years of dedicated public service”.
“Caliskan’s success sets an inspiring example for young generations of Turkish Cypriots and demonstrates the growing strength of the contribution which diverse communities in the United Kingdom make to democratic public life,” he said.
She replaced Miatta Fahnbulleh, who had resigned in an effort to urge Starmer to resign after the country’s ruling Labour Party lost almost 1,500 local councillors in last week’s local elections and lost control of the Welsh government for the first time since the creation of the Welsh devolved authority in 1999.
Thus far, more than 90 of the Labour Party’s 403 MPs have called on Starmer to resign, though he has thus far defied those calls, holding a 15-minute meeting with Health Secretary Wes Streeting, who is widely expected to challenge him for the party’s leadership, on Wednesday morning after having reportedly refused to speak to him after Tuesday’s cabinet meeting.
In response, a letter purportedly having been signed by more than 100 Labour MPs was published, and while Caliskan’s name was not among the fellow signatories, fellow British Cypriot MP Bambos Charalambous’ name was.
However, at least one Labour MP whose name appeared among the signatories denied having signed it.
It is expected that Streeting may challenge Starmer for the party’s leadership as early as Thursday, while other potential candidates to replace Starmer, including Energy Secretary and former party leader Ed Miliband and undersecretary of state for the armed forces Al Carns, are said to be readying themselves for a leadership election.
One key name, Manchester mayor Andy Burnham, remains outside of parliament, having been blocked by the Labour Party’s national executive committee from standing in a by-election in the city’s Gorton and Denton constituency in February.
The seat had been held by the Labour Party, but the party’s chosen candidate Angeliki Stogia finished in third place in the by-election, which was won by the Green Party’s Hannah Spencer.
President Nikos Christodoulides on Wednesday said that “we are proud of Cyprus’ Maronite community” while welcoming a delegation from the community, led by its outgoing non-voting representative in parliament Yiannakis Moussas, to the presidential palace.
He began his address by thanking Moussas “on behalf of the government and of the state, and also personally, for the cooperation we have had”, and to this end, highlighted the fact that “no matter how many years pass, I will not forget that we reopened the [Kormakitis] nursery school after 25 years”.
“We had said this before the [2023 presidential] election, we changed the resettlement plans by significantly increasing the number [of people moving to , compensation for the floods which occurred in Kormakitis, churches, so many things that we have done,” he said.
He added, “we are proud of Cyprus’ Maronite community, for its contribution to the political, economic, and social life in the country”, and said that he hopes this cooperation continues after the forthcoming parliamentary elections, when the Maronite Cypriot community will elect a replacement for Moussas.
“We will continue to cooperate, of course, you know these issues very well. We are here and this cooperation will continue,” he said.
Moussas, meanwhile, said that Christodoulides’ election as president in 2023 was “historic for the conditions of Cyprus”, and said that with Christodoulides previously having served as foreign minister and government spokesman under his predecessor Nicos Anastasiades, “ours is a relationship which goes back [and] has depth”.
“I am very happy because, reviewing this relationship, I found that a lot of things happened, and a lot of things happened in a short period of time. That is why they happened very noticeably,” he said.
Those achievements, he added, included that “the infrastructure in our villages … has improved”, as well as a “drastic increase” in the number of Maronite Cypriots moving to traditionally Maronite villages in the north thanks to increased subsidies and incentives offered to them by the government.
“You know very well that without our villages, we have no hope of surviving,” he said.
On this matter, he said that Christodoulides was “the first president to raise the issue of our other two villages, the garrisoned villages of Ayia Marina and Asomatos, and for putting the issue on the table for talks”, with both villages, located east of Morphou, having historically been Maronite villages but having since 1974 fallen within the bounds of Turkish military bases.
He also thanked Christodoulides for attending Maronite events, before then praising his “exceptional support for Lebanon and President [Joseph] Aoun”.
Christodoulides said of his relationship with Lebanon and Aoun that “you know how close I am” to both, that “we are lucky to have President Aoun in Lebanon”, and that “we are working together to address the country’s challenges”.
“Lebanon is the closest country to Cyprus and sometimes, in discussions with my friend Joseph Aoun, we say that a bridge is needed to connect the two countries. In addition to our bilateral support, we are doing our utmost within the European Union so that the EU can effectively support Lebanon,” he said.
He then expressed pride that “I was the one who invited” European Commission President Ursula von der Leyen to Lebanon when she first visited the country in 2024, and also pointed out that Aoun had travelled to Cyprus last month to attend the informal European Council summit which took place in Nicosia.
“One of the most important results of our discussions was Cyprus’ proposal to start negotiations between the EU and Lebanon for a strategic, comprehensive agreement, because we, the EU, have a responsibility to support the efforts,” he said.
At the end of the meeting, Christodoulides was awarded the ‘Golden Cedar’, the highest honour awarded by the Maronite Cypriot community.
Moussas said that the honour had been bestowed unto Christodoulides “for the close cooperation over the years” between Christodoulides and the community.
“We have achieved a great deal. The community feels that the president of the republic, and his wife, by its side, and as a sign of our appreciation for you and in recognition of your valuable contribution to our community, which certainly does not end here, we award you this honour,” he said.
He added that the award “symbolises the historical origin of the Maronites, which is Lebanon”, and also reflects Christodoulides’ “exceptional efforts to support and assist the long-suffering Lebanon and its president”.
Wardens at the central prison will go on strike for 24 hours on Friday next week, trade union Isotita announced on Wednesday.
The union demanded the immediate termination of disciplinary proceedings initiated against its prison wardens’ branch deputy leader Giorgos Maltezos, and called for “mandatory consultation” with the trade union regarding decisions concerning employees.
It also called for “the immediate revocation of the illegal order which punishes those who use sick leave by excluding them from overtime”, and for an independent prison chief to be appointed “outside of the army and the police, with proven knowledge and experience in prison policy”.
Under that prison chief, it said, four officers “with specialisation in criminology and personnel management” must also be appointed.
It warned that if those demands are not heard, “we will escalate our measures again, with every legal and democratic means available to the trade union movement”.
Regarding Maltezos’ situation, the union said that he had “publicly highlighted issues of overcrowding, drug trafficking, and understaffing” at the prison in December last year, and that since then “a methodical process of targeting him” has been undertaken.
The union then said that the prison is “seriously understaffed”, pointing out that at present, there is only one prison warden for every 60 or 70 prison – a ratio which “makes the safe operation of the wings impossible”.
It added that in some incidences, prison wardens have found themselves locked inside the wings with prisoners – something which they say “puts the staff and the prisoners at risk”.
The Nicosia municipal swimming pool will reopen for the 2026 summer season as of next Monday.
The municipality said the new pricing structure was designed to support “families, students, large families, people with disabilities and vulnerable social groups” during the four-month summer period.
Children under the age of five, organised social service groups and up to 10 Eldyk soldiers at a time will be granted free entry.
Free parking will also be available for all visitors throughout the season.
Daily admission for pupils, students and soldiers has been set at €5, while seasonal passes will cost €55.
Individual visitors will pay €6 for a daily ticket or €85 for a seasonal pass.
Special family packages have also been introduced, for couples will be able to purchase a seasonal pass for €140, while couples with one child will pay €160 for a seasonal pass.
Families with two children will pay €20 for a daily visit or €160 for a seasonal pass, while families with three children will pay €25 daily or €170 for the season.
The municipality also approved additional concessions for large families and people with disabilities.
Families with four or five children will receive a 50 per cent reduction on seasonal passes upon presentation of the required certificates, while families with six or more children will enter free of charge.
Holders of a disability booklet issued by the labour ministry will be entitled to a seasonal pass costing €42.50.
The municipality said a companion accompanying a person with a disability of 70 per cent or more would also receive a 50 per cent discount.
Single-parent families will receive a further 10 per cent discount upon presentation of the necessary documentation.
The municipality said organised groups, including birthday parties and summer schools, would pay €3 per person on weekdays, while sunbeds would be available for €2 each.
Energy security, coordinated action and the acceleration of electrification were at the centre of discussions at an informal meeting of EU energy ministers held in Nicosia on Wednesday under Cyprus’ presidency of the Council of the EU.
Energy Minister Michalis Damianou, who chaired the meeting, said the talks remained firmly focused on strengthening the EU’s long-term resilience while ensuring affordability for consumers, businesses and industry.
Speaking at a press conference after the meeting, Damianou said discussions were aligned with the presidency’s broader goal of promoting a competitive, highly resilient and strategically autonomous European Union.
He stressed that coordinated action and accelerated electrification are essential to mitigating risks stemming from the EU’s dependence on imported energy and ensuring long-term energy security.
“Under the current geopolitical developments, Europe’s dependence on imported fossil fuels constitutes a significant economic and strategic risk, as demonstrated by sharp price increases affecting households and industries,” he said.
Ministers also held extensive discussions on the European Commission’s AccelerateEU initiative, examining its five strategic pillars aimed at strengthening coordination, protecting consumers and speeding up electrification.
“It is now of utmost importance that member states implement these measures quickly and in a coordinated manner, to avoid fragmented responses and build long-term resilience,” Damianou said.
He added that expanding electricity storage capacity is a critical tool for ensuring grid stability and providing the flexibility needed to reduce and stabilise energy prices across Europe.
Ministers examined the key role of storage technologies in enabling a cleaner and more resilient energy future, as well as ways to overcome existing barriers such as complex administrative procedures and to enhance cross-border coordination.
“With better synchronisation of variable renewable energy with stable low-emission base units and different storage solutions, we can create a more flexible and truly integrated energy union,” Damianou said.
He added that aligning short-term crisis responses with long-term structural objectives is essential to ensuring that Europe’s energy landscape remains stable, resilient and affordable.
The minister also stressed that ensuring a predictable energy pathway requires striking the right balance between immediate policy responses and long-term commitments to decarbonisation and the transition to hydrogen technologies, in line with the EU’s target of reducing greenhouse gas emissions by 90 per cent by 2040.
During the meeting, ministers also discussed broader challenges related to volatility in global energy markets and the impact of geopolitical instability, particularly in the Middle East.
European Commissioner for Energy Dan Jorgensen said the EU has paid €35 billion more for energy since the start of the Middle East conflict without receiving additional supply, warning that the bloc remains vulnerable to global price fluctuations.
“This is not an energy crisis. It is a fossil fuel crisis,” he said.
Jorgensen noted that while Europe is better prepared than in 2022, thanks to increased renewable energy deployment, diversified suppliers and improved efficiency, it remains exposed to external shocks.
“When global market prices rise as they are doing now, we are hit hard,” he said.
He stressed the need to accelerate efforts to move away from fossil fuels, improve energy efficiency and expand renewable energy, while ensuring that any support measures for industries and vulnerable consumers remain targeted and temporary.
Despite ongoing uncertainty, he said the EU does not expect serious short-term supply disruptions, including in aviation fuels, though longer-term risks cannot be ruled out depending on developments in the Middle East and market responses.
“We are not at that point yet. We do not expect a very serious supply security problem in the very short term,” he said, adding that the situation continues to be closely monitored.
Officials said the success of EU energy policy will depend on how quickly high-level political discussions are translated into concrete cross-border projects and enhanced operational cooperation across the bloc.
Negotiations on Cronos are in their final stages with first gas expected by mid 2028, Energy Minister Michalis Damianou said on Wednesday.
Speaking after chairing a meeting under Cyprus’ presidency of the Council of the EU, he added that while natural gas can support energy security in the short to medium term, infrastructure beyond 2030 must be assessed against the bloc’s climate and clean energy targets.
On the Cronos discovery, operated by a consortium of Eni and TotalEnergies, he said negotiations were in their final stages. Gas is expected to be routed through Egypt’s Zohr field before reaching European markets.
“If we reach an agreement within the next one to two weeks, we are targeting first gas by the end of 2027 or the first half of 2028,” he said, describing the development as positive for Cyprus and the wider region.
Damianou also provided updates on Cyprus’ offshore developments, saying the Aphrodite field was progressing according to plan. He noted that Chevron is advancing the front-end engineering and design (FEED) phase until January 2027, with a final investment decision expected within six months.
“We are targeting first gas in 2030 or 2031, and this is within schedule,” he said, adding that output would be transported to Egypt via pipeline.
Regarding discoveries by ExxonMobil, Damianou said these were progressing on schedule, with first gas expected around 2033 due to technical requirements.
He added that Cyprus could begin supplying liquefied natural gas to Europe within approximately two years if progress on Cronos is finalised, stressing that natural gas would act as a “bridge fuel” during the transition to cleaner energy and hydrogen technologies.
Presenting the outcome of the meeting, Damianou said discussions remained focused on building a competitive, resilient and strategically autonomous EU, with coordinated action and accelerated electrification key to reducing dependence on imported fossil fuels.
Ministers also examined the role of electricity storage in ensuring grid stability and supporting the transition to a climate-neutral economy by 2050, including ways to remove regulatory barriers and strengthen cross-border cooperation.
Livestock farmers remain in dispute with the government over compensation linked to the foot and mouth disease outbreak, with representatives warning that protests remain possible if concerns are not addressed.
Speaking on Wednesday following negotiations with Agriculture Minister Maria Panayiotou the night before, spokeswoman for the association “voice of the livestock farmers” Stella Petrou said disagreement over compensation measures continued despite ongoing discussions between the ministry and farming groups.
“When the discussion came to the compensation issue, we remain at loggerheads,” Petrou informed the Cyprus News Agency, adding that farmers had not been properly informed about how payments had been calculated.
“As the voice of the livestock farmers, we do not accept that the compensation package will be able to deliver what they suggest,” she said.
The cabinet-approved package includes five support measures covering compensation for culled animals, income support for up to 12 months for farmers wishing to restart operations, restructuring support for farms with high genetic value animals, coverage of feed costs during recovery periods and the appointment of a state officer for each affected farmer.
Compensation for culled animals ranges from €47 to €420 for sheep and goats, €150 to €2,500 for cattle and €35 to €5,000 for pigs, with payments determined according to age, gender, genetics and other criteria.
Panayiotou confirmed earlier on Wednesday that payments would begin immediately and that the government aimed to complete all eligible payments within May.
President Nikos Christodoulides said the compensation package was “up to 200 per cent higher” than equivalent payments in other European countries, which he attributed to the government’s fiscal policy.
Petrou however insisted that though the compensation package may appear comparatively high against payments in other European countries, farmers could not support the framework without clear details on the criteria used for each category of animal.
“The amount of compensation is quite high compared to other European countries, but without knowing the criteria and what they give for each animal more clearly, we cannot say that we are happy,” she said.
Petrou also criticised the make up of advisory committees involved in the process, arguing that livestock farmers were underrepresented.
“Those who decided on the compensation are not livestock breeders. Most of the members of the committees were agronomists and farmers,” she said.
The association was due to meet in Choirokitia on Wednesday evening at 8pm to brief members on recent contacts with the ministry and discuss possible next steps, including whether further demonstrations should take place.
Asked about new protests, Petrou affirmed that mobilisations remain a viable response yet assured that such action would only be implemented as “a last resort”.
The group also raised concerns over the handling of animal burials following culls linked to the outbreak.
Petrou alleged that disposal procedures were not being carried out according to official protocols.
“We cannot ask for protocols for the killing of animals and when we bury the animals, no protocol is applied,” she said.
She claimed burial pits in some areas were too shallow and warned of environmental and public health consequences as temperatures rise.
“We will have a problem now that summer has started. In the Athienou area, the stench has already started,” she said.
According to Petrou, official guidance requires animals to be buried nine metres deep and treated with lime before being covered.
“They dig six metre pits, throw them in and cover them with soil,” she said.
The association also criticised a decree due to come into force on Friday reducing the minimum proportion of goat and sheep milk required in PDO halloumi from 25 per cent to 15 per cent.
“We do not find the decree correct. We will fight for this as well,” Petrou said.
Despite the dispute, Petrou expressed optimism that the outbreak itself was nearing containment as vaccination efforts progressed.
“We are at the end of the vaccination, we are on a very good track, and we believe that the killings will stop,” she concluded.
Customs agents at the Ayios Dhometios crossing point seized more than €208,000 in cash during a routine check carried out on Wednesday under the Green Line Regulation.
The money was found in a vehicle driven by a 49-year-old Turkish Cypriot woman, with her 50-year-old husband as a passenger.
During an inspection of the vehicle, agents discovered 50 envelopes containing cash in different currencies, including euros, US dollars, British pounds and Turkish lira.
The total amount was valued at €208,600, broken down as €169,950, $20,300 (about €17,400), £11,275 (about €12,900) and 435,605 Turkish lira (about €8,350).
Officials said the passengers did not give satisfactory answers when questioned about the origin and intended use of the money.
The entire amount was confiscated pending further investigation.
The Great Mosque of Limassol is entering the final stage of restoration works, with authorities expecting the historic monument in the city’s Kastro district to be completed and handed over by early autumn.
Officials and representatives of the bodies involved toured the site on Wednesday to review progress and discuss the remaining phases of the project, which has involved years of conservation and renovation work aimed at preserving the mosque’s archaeological, religious and cultural character.
The restoration concerns both the mosque itself and its adjoining prayer area.
During the works, engineers, archaeologists and contractors faced what officials described as significant technical and archaeological challenges, requiring specialised interventions to ensure the structure’s original features were not altered.
The project has involved cooperation between antiquities department, the foreign ministry, Turkish Cypriot representatives and the government of Oman, which is funding part of the restoration effort.
Those overseeing the project said the work had been particularly demanding because of the need to balance structural repairs with the preservation of the site’s historical integrity.
The Jami Kebir Mosque is regarded as one of Limassol’s most important Islamic monuments and forms part of the wider historical fabric of the old city.
Authorities involved in the restoration said the aim was to preserve the building both as a place of worship and as a cultural landmark reflecting the island’s diverse heritage.
Government sources also confirmed that President Nikos Christodoulides has taken a personal interest in the project and has been closely monitoring its implementation.
The mosque, located near Limassol castle and the old port area, has undergone extensive repairs to damaged sections of the structure, conservation of historic architectural elements and improvements to surrounding facilities.
Officials expect the restoration to be completed by late September or early October, after which the site is expected to reopen fully.
Allegations of perjury against Alma leader and former auditor-general Odysseas Michaelides resurfaced on Wednesday, with letters having been sent to both the legal service and to police chief Themistos Arnaoutis demanding that he be investigated.
The allegations were first levelled by former audit office employee Andreas Hasapopoulos, who had initially been a close ally of Michaelides, even operating a Facebook group created in support of him in the years leading up to his dismissal from the post of auditor-general in 2024.
In the years preceding that dismissal, Michaelides had regularly found himself at odds with the legal service and much of Cyprus’ political leadership and often found himself accused of overreaching his duties.
The Facebook group was, ostensibly, created to counteract those accusations, running posts praising Michaelides’ character and work, while criticising his detractors.
However, relations between Michaelides and Hasapopoulos have soured in recent years, with Michaelides deciding not to allow Hasapopoulos to stand in the forthcoming parliamentary elections on the ballot of Alma, the party he established last year, reportedly citing the fact that Hasapopoulos is now in his 70s.
It was after this that Hasapopoulos became an open adversary of Michaelides, and accused him of perjury, saying that when Michaelides had testified in court during the case which led to his dismissal that he had never had any say in the posts which appeared in the Facebook group or involvement in its running, he was not telling the truth.
“My answer is that I have no connection whatsoever to the [Facebook group], nor could I decide what symbols or photographs were uploaded to it,” he had told the Supreme Constitutional Court in 2024.
Despite this, a reference to the group was included in the court’s decision to relieve him of his duties, with the court writing of “obscene content”, and saying that although the page did not belong to Michaelides, “it bore his name and photograph.”
The Facebook group was eventually closed down for violating the social media giant’s terms of service.
Those accusations were levelled in November, with Hasapopoulos saying that he has in his possession evidence of “direct and systematic communication” between himself and Michaelides regarding the group through messages on WhatsApp.
He claimed that the evidence included “ready-made posts”, thus contradicting the account Michaelides had given to the Supreme Constitutional Court, and potentially rendering him liable.
No action was taken regarding those accusations at the time, but the Cyprus Mail now understands that Hasapopoulos has penned letters demanding that Michaelides be investigated.
Were Michaelides be called to give evidence over the matter, it would not be the first time he has been asked to do so since being dismissed as auditor-general, after he was accused of holding the Supreme Constitutional Court in contempt in the aftermath of its decision to relieve him of his duties.
On that occasion, attorney-general George Savvides elected not to prosecute him, saying that while he had been presented with “sufficient evidence” to be able to go ahead and prosecute Michaelides, he had instead chosen to give him a “second chance”.
Michaelides launched Alma last year, and with a week and a half to go until the parliamentary elections, the party appears on course to be the fourth- or fifth-largest party in the new parliament, according to polling.
An explosion was reported early on Wednesday in a yard in Yeroskipou, causing alarm but no injuries or damage, police said.
A resident called police at around 12:30am after being woken by a loud blast coming from outside her home.
Officers who arrived at the scene found no structural damage to the property or surrounding area during initial checks.
However, during a search of the yard, police discovered a sealed plastic water bottle containing a flammable liquid, along with an improvised device holding flammable material and a firecracker.
Investigators said the firecracker appeared to have exploded, but the liquid inside the bottle did not ignite, likely preventing more serious consequences.
At first light, further examinations confirmed the explosion was caused by a factory-made firecracker.
Police said investigations are continuing to determine how the items were placed in the yard and to establish the motive behind the incident.
Forest firefighters staffing the Forestry Department will be staging a strike on May 25 and 26 to protest the violation of their work description.
Trade unions SEK, PEO and Deok said on Wednesday this violation prevented the firefighters from responding immediately to a fire and placed their safety and lives at danger.
Last year, they said, the agreement between the trade unions and the government in the presence of the Forestry Department director had been implemented, however this year the department decided not to honour the agreement.
The trade unions have sent letters to the Forestry Department calling for the agreement to be restored along with compensation for handling heavy vehicles and machinery.
In the meantime, the trade unions called on forest firefighters to continue implementing the agreement, following which they received letters from the Forestry Department director informing them of disciplinary measures.
The strike was decided to protect the forests and the firefighters who place their lives in danger to safe the forests, the trade unions pointed out.
A 29-year-old Turkish Cypriot man has reportedly kidnapped his two-year-old child from its British mother’s home in Limassol after illegally crossing from the north, police said on Wednesday.
According to the police, the incident occurred at around 7.50am on Wednesday morning when the father entered the mother’s house and together with a second person forcibly grabbed the child and left to the north.
Limassol deputy police chief Lefteris Kyriakou said that an arrest warrant is expected to be issued for the father, who is already subject to another arrest warrant in relation to a domestic abuse incident that was documented in 2025.
Investigations into the case, as well as into how the man illegally crossed to the south and later returned to the north are ongoing.
A 14-storey building marked as dangerous in the Omonia area of Limassol is finally being demolished.
Witnesses told the Cyprus Mail that the roads have been cordoned off, and earth shifters are already at work.
The abandoned Pieris Estate building on Omonia avenue had been earmarked for demolition in March, but its size and proximity to neighbouring houses and a road heavy with traffic had demanded further planning.
Limassol’s district organisation (EOA) had said safety was the main concern.
Sources said the new owners of the building had brought in equipment from abroad for the demolition.
The building, known as Maritime Building, had been abandoned in 1977 and in recent years was being used by homeless people. It was reported to be rat infested and derelict.
Cypriot MEP Loukas Fourlas called on Wednesday for the European Union to abandon what he described as a policy of equidistance towards Turkey, after Ankara confirmed work on draft legislation linked to the ‘Blue Homeland’ (Mavi Vatan) maritime doctrine.
In letters addressed to European Council president, Antonio Costa, European Commission president, Ursula von der Leyen, and European Parliament president, Roberta Metsola, Fourlas said Turkey was attempting to “institutionalise illegality and expansionist policy” by incorporating the doctrine into domestic law.
The intervention followed a recent conference in Ankara, where Turkish officials and academics confirmed the existence of a draft bill concerning maritime jurisdiction and “bodies of water with special status”.
According to Turkish officials, the proposed legislation would define maritime jurisdictions and establish the legal basis for activities within those zones.
Professor Cagri Erhan, acting chair of the Turkish presidency’s board of security and foreign policies, said the bill stemmed from efforts to preserve “the rights and interests of the Turkish nation” under international law.
Turkish maritime law centre director, Mustafa Baskara, said the legislation aligned with Turkey’s maritime policies in the Black Sea, eastern Mediterranean and waters surrounding the north of Cyprus and Libya.
“For us, the Blue Homeland is wherever a ship flying the Turkish flag reaches,” he remarked.
The ‘Blue Homeland’ doctrine, developed by former Turkish naval officers, sets out Ankara’s claims over maritime zones in the Levant, Aegean and Black Sea.
The doctrine has been strongly opposed by both Cyprus and Greece, which argue that Turkish claims violate international maritime law and the sovereign rights of neighbouring states.
In his letter, Fourlas said Ankara was attempting to transform “arbitrary claims into alleged state legitimacy”, while disregarding international law, the law of the sea and “the European legal order itself”.
He also referred to recent incidents inside the buffer zone in Cyprus and accused Turkey of attempting to create “new faits accomplis” through pressure and intimidation.
“The harassment of farmers, the violations and threats against citizens, constitute unacceptable actions that violate every concept of international legality,” he wrote, adding that Turkey was “consciously choosing tension and destabilisation”.
Fourlas warned that continued European tolerance towards Ankara risked undermining the EU’s credibility.
“A candidate state for accession cannot violate the sovereign rights of member states without consequences,” he said.
The intervention came amid renewed tensions in the Aegean after a Turkish warship reportedly harassed the cable laying vessel Ocean Link between Kos and Astypalaia earlier on Wednesday.
Greek media reported that the Turkish vessel claimed the area fell under Turkish jurisdiction and ordered the ship to leave.
The Greek frigate Adrias, which was operating nearby, intervened and informed the Turkish vessel that the ship was operating within Greek jurisdiction, allowing the work to continue.
The Ocean Link had been conducting underwater surveys and cable laying operations linked to the SEA-SPINE telecommunications project after receiving permits from Greek authorities.
Turkish officials in Ankara insisted the proposed maritime legislation was not directed against any specific country.
The amount of goat milk in halloumi will be reduced from 25 to 15 per cent until the end of the year because of the recent outbreak of foot and mouth disease (FMD), Commerce Minister Michael Damianos said.
“The quantities of goat and sheep milk currently available do not allow all halloumi producers to comply with the production specifications of the protected designation of origin for halloumi,” he said in the official gazette.
Damianos said that, therefore, the minimum amount of goat and sheep milk in the raw materials used to produce halloumi will be reduced until the end of the year.
The exact timeframe is the period between May 15 and December 31, 2026.
“The above ratios, unless modified, will remain in effect until the end of the transitional period,” he said.
The outbreak of FMD in February has led to the islandwide culling of thousands of animals including cattle, goats and sheep.
This has had a direct impact on the local agricultural industry, and consequently on halloumi cheese, which is one of Cyprus most successful exports.
Agriculture Minister Maria Panayiotou, in a statement on Wednesday afternoon, said the measure was deemed necessary to maintain exports and ensure the protection of the PDO classification.
“We have lost around 10 per cent of our sheep and goats so far, so it was logical to also have a reduction in sheep and goat milk,” she said.
She added that the situation would be monitored on an ongoing basis, and that the cheesemakers’ association has confirmed that they will continue to receive all quantities of milk, without amending any agreements with our sheep and goat farmers.
“I hope there is an increase and this is completed and there will definitely be an upward adjustment,” she said.
The Cyprus cheesemakers’ association, on its part, welcomed newly announced plans.
“[The available quantities of goat and sheep milk] do not allow all halloumi producers to comply with the production specifications for PDO halloumi and the relevant standards, based on which goat or sheep milk must be superior to cow’s milk,” the association said.
“Efforts are being made to gradually increase the production of goat and sheep milk,” the association said.
Describing the new regulations as a “transitional period”, the cheesemakers said that they aimed to enable full compliance of all producers with the production specifications for PDO halloumi by the end of the year.
Farmers’ organisations, however, were less than impressed, saying in a joint statement that the decision “only serves expediency and not the safeguarding of the PDO, as that has been guaranteed”.
They added that they had previously warned the government against such plans, and pointed out that cows have also fallen victim to the outbreak of foot and mouth disease in recent months.
“After its registration, halloumi must be a product, like all other PDOs in Europe, which is linked to tradition, uniqueness, and quality, from production to milk processing, while acquiring corresponding value, both for producers and farmers and cheesemakers,” they said.
“It should not be manufactured based on the needs of the market and industrialists, but according to the registered specifications.”
We’re filling an API gap for GitHub App developers based on community feedback.
We’ve added a new API that lets a GitHub App find out if it’s installed on an enterprise and what its installation ID is. This matches the existing APIs that do the same for organizations, repositories, and users. These APIs help apps get an installation token for an enterprise faster, rather than paginating through a list of all installations to find the right target.
Thank you to the broader GitHub Actions community and Enterprise Apps preview participants for calling out this gap so that we could solve it.
To learn more about the API, see the REST API documentation.
If you have any questions or thoughts, drop a comment in our Community discussion.
The post New enterprise installation API now in public preview appeared first on The GitHub Blog.
Copilot Business and Copilot Enterprise users can programmatically start Copilot cloud agent tasks with the new Agent tasks REST API, available in public preview.
Copilot cloud agent works in the background in its own development environment, where it can make and validate code changes, then open a pull request.
The new API makes it easy to weave Copilot cloud agent into custom automations. For example, you could:
Once you’ve started a task, you can also track progress through the API.
The Agent tasks API supports authentication with personal access tokens (classic and fine-grained) and OAuth tokens.
Support for GitHub App installation access tokens, plus access for Copilot Pro and Pro+ users, is coming soon.
To learn more, head to our agents tasks REST API documentation.
The post Start Copilot cloud agent tasks via the REST API appeared first on The GitHub Blog.
GitHub Enterprise Server (GHES) 3.21 enhances deployment efficiency, monitoring capabilities, code security, and policy management. Here are a few highlights in the 3.21 release:
Hierarchy view for GitHub Projects is now generally available. You can now view your full issue hierarchy directly in project table views, giving you clear visibility into complex work breakdowns without losing context or switching views. For more information, see hierarchy view.
REST API version 2026-03-10 is now available and introduces breaking changes. Existing integrations on version 2022-11-28 will continue to be fully supported for at least 24 months from the 3.21 release date. For more information, see REST API version 2026-03-10.
GitHub Actions workflow pages now successfully render workflows with more than 300 jobs. We’ve implemented lazy loading to smoothly handle large workflows. In addition, you can now filter jobs based on status (for example, failed or in-progress) directly from the workflow pages. For more information, see improved performance for GitHub Actions workflows page.
This version includes improvements to alert-level and enterprise-level permissions for secret scanning. You can now more easily manage secret scanning alerts, custom patterns, and push protection bypasses. For more information, see enterprise governance and policy improvements for secret scanning.
Configuring multiple data disks to host MySQL and repository data is now generally available. This applies to standalone and high availability topologies and is available in the latest patches of 3.17, 3.18, 3.19, and 3.20, and in 3.21. For more information, see configuring multiple data disks.
Release candidates are a way for you to try the latest features early and help us gather feedback. Read more about the release candidate process. To learn more about GHES 3.21, check out the release notes, or download the 3.21 release candidate now.
If you have any feedback or questions about the release candidate, please contact our support team.
The post GitHub Enterprise Server 3.21 release candidate is available appeared first on The GitHub Blog.
Help me.
I started my game development journey during the pandemic, around 2020–2022. I began using GameMaker Studio 2 and immediately got hooked. But when face-to-face classes returned, I no longer had the time to continue learning or making games.
Fast forward to today, I want to get back into game development again, but I’ve forgotten most of what I learned back then. Looking back, I realized I was stuck in “tutorial hell,” so I never really built a solid understanding that stayed with me.
The problem now is that I still get motivated to learn, but the moment I open a tutorial, I quickly get bored or distracted by something else. I want to learn Godot, but it feels overwhelming, almost like there’s a huge gap between GameMaker and Godot.
Because of that, I decided to try PICO-8 first, since a lot of people say it’s a great way to start learning game development—or in my case, get back into it. But I keep running into the same problem: I get excited to learn, open a tutorial, then lose focus halfway through.
For me, tutorials often feel too slow at the beginning because they spend a lot of time covering things I already know. But when I skip ahead, it suddenly feels like I missed important concepts, and then I can’t keep up anymore.
I know this might make me sound spoiled—like I’m saying, “I want to make games, but I’m too lazy or impatient to sit through tutorials, so just hand everything to me on a silver platter.” But that’s not really what I mean.
What I’m really asking is: how do you get out of a situation like this?
Starting game dev with a friend, mainly just a small project we're both making. Im dealing with the technical area while he partakes in design. Not exactly expecting much from it.
Im using Game Maker Engine and have some experience with programming and very little with game experience (first game) so i've been taking some free tutorials online and doing a lot of discussion with said partner to see what direction the game takes (while also not trying to copy other games)
Some simple advice would go a long way, specially since i hope to not "dream tp big" and have tons of ideas but be unable to reach them due to a lack of experience.
I apreciate the help. Thank you very much
Other than having a decade of 3D experience (I can handle creating characters and assets on my own) I'd be learning everything from scratch.
My idea is: you play as an astronaut crashed landed on a distant jungle planet. Your ship is damaged but don't worry your robot partner is taking time to repair it! But your not alone on this planet. Hostile aliens find you and come to attack.
Your goal is to survive until time runs out. The aliens chase you and you must evade them in a small map. As the time goes lower more aliens appear to chase you. If you are caught 3 times it's a game over and a cutscene appears of them carrying you back to their lair. If you survive, you get to go back to your spaceship and escape.
Now of course this sounds simple to me, but I don't know how simple in reality. My goal is at the end of my work week to download unreal engine and start learning tutorials to try to make this game.
Probably not the most fun, but this idea is inspired by a game me and my brother use to play a lot as kids, with mine of course being a much more simple version. I think it would be a good start to getting into game dev? what do you all think?
i want to make fairly simple low to medium poly models . for example i like the low poly models of unturned but i also like ps2 graphics like models. Ive heard blockbench is fast and way easier than blender but blender just has way more but has a steep learning curve. should i just do myself a favor and start to learn blender or should i try other software.
Hi everyone! This year I decided to become a UI/UX designer for videogames. I have no artistic/graphic/design background, so I'm starting from the ground zero.
For the last 3 months I've been recreating UI from some of my favourite games in Figma. I've made Firewatch, Hollow Knight, some screens from FTL and Saros. I really enjoyed it and I feel that this career path is right for me.
This week I've decided that I don't want to copy anymore and want to redesign the UI of any game with known UX problems. And suddenly I met a new enemy. Fear.
Fear of creating something new and not copying. Fear of blank canvas and not knowing how to start and where. When I try to design something (button, label, icon, etc), I'm always feeling that something is off and wrong. Since I've never done design, I have a really hard time understanding what's correct, stylish and "in its place".
Do you have any advice about this situation? Maybe I should delve into theory, practice differently or do something else. I'll be glad to receive any assistance!
I'm making my first steam game however I'm torn between making my game a vr exclusive or PC compatible
for future reference. when I say I will add my game to pc. it means people will also be able to play it without a vr. The game will run off steamvr so it will always technically be on pc
This is a poolrooms horror game. (if you do not know what the poolrooms are. it's a fan made level based off the backrooms, popularised by Kane pixels)
The game is intended to be played in vr and I have several reasons why I wanted it to be a vr exclusive:
-the atmosphere and overall gameplay wouldn't be the best it can be without being in vr.
-the game would need a somewhat powerful PC to run smoothly. this kind of pc would have the minimum specs to run vr anyway. (nothing to crazy just anything that isn't a potato)
-a vr exclusive poolrooms game would set apart my game from all the other backrooms games.
-if I released my game to PC im afraid that people will judge the game based on its pc version of which I won't be actively working on as much. given the true experience would be on vr and PC would be just a compatibility option.
-some current mechanics and planned mechanics would need to be changed to account for PC. (eg like inventory, item interactions ect)
I'm torn between making it pc compatible for the following reasons:
-i understand not everyone can afford or have a vr
-the game won't be able to be enjoyed by as many people. sure there are alot of aspects reliant on vr but at it's core you could still play it on PC and still enjoy it.
-first game so I'm scared it will flop because it wasn't pc compatible.
-there are alot of people who have a pc who could run said game but don't have a vr.
-it wouldn't be as enjoyable for me to develop the game from a PC standpoint. I like the challenge developing for vr presents aswell as the cool stuff I can do for vr
what do you guys think. can I get feedback on this?
if you want more info on the game for better context here is a link to the steam page
https://store.steampowered.com/app/4532330/Into\_the\_deep\_end/
Out of curiosity, has anyone with non-game writing experience gotten hired for game writer roles? It's been hard finding jobs related to my degree. I have an MFA in Creative Writing yet much of my work is in non-game writing, such as poetry, fiction, creative non-fiction. I have publications & received writing grants.
I am really just trying to find employment right now and my goal was academia, yet much of writing postings in my area are for game writers. But they want game writing experience. So trying to see if anyone's been in a similar boat. Curious if it's worth just taking a leap submitting my stuff.
Hi everyone.
I’m sharing a cautionary tale about why legal contracts are vital, even when working with "friends," and warning the community about a project currently built on stolen assets.
I was the lead writer for "Killing Eternity: A Hypocritical Spiral" for two years. After a fallout regarding rights and credit, my former partner kicked me out and proceeded to use my entire script and world-building without permission or compensation.
Current status of the project:
Why am I posting this here? If you are a freelancer or an indie dev, avoid this project. The lead developer has shown a total lack of respect for creative rights and is willing to lie under oath to bypass platform regulations. Any work you contribute to this project will be tied to a legal mess and frequent takedown notices.
Proof of plagiarism and admin confirmation: https://imgur.com/a/6mI4kQy
TL;DR: Partner stole 2 years of narrative work, got caught by platform admins, and is now lying to YouTube to keep the project alive. Don't waste your time or reputation.
If you have questions or want to see more evidence before deciding to join the project, feel free to DM me.
EDIT: Clarified Charles's role as Discord Admin/Moderator, not the owner of the platform. My apologies for the confusion.
I'm currently learning game dev and have started creating house textures in blender with modular walls. My wall textures are a flat plane with white paint color, and five rectangular beams rotated in different ways with their own texture material under the hood. What I'm curious of is, am I supposed to create a texture atlas and bake that to later use that downstream in unreal engine, or should I be just including the straight up 3D static mesh textures for each of those beams and the wall itself? Some people it seems use the texture atlas approach, baking the entire thing into a texture atlas that can be used with the full PBR like the height map, displacement, normal map etc. Curious what you think
| This is a tech demo of the new engine I'm building for Chessamphetamine. I've been making games for 22 years, but decided to start over from scratch for this new game. I was inspired by the Tomorrow Corporation tech demo video, but wanted to build similar features into my engine without making my own compiler, etc. [link] [comments] |
Hi! I’m a game designer working with some friends on a 2D top-down action roguelike where parrying is the main game mechanic.
We are still on a very early stage in development and although we feel that our approach to parrying has been the most intuitive and straightforward, we also know that creating a system which feels great and satisfying is going to be difficult.
So far, our parry is a circle around the player which appears once the player presses the block button. That circle sticks around for a short window of time and any attacks that come to the player, melee or projectiles, are automatically parried.
That said, the main questions I have are the following:
Thanks in advance!
My name is Ivan Fisher-Owen and I’m a first time indie game dev based in Ireland who normally works as an assistant set designer & builder for live theatre, and as a part time animator focused on handmade animations. I was the conceptual designer and animator for Éalú, which is an interactive, silent stop motion film configured as a point & click puzzle game about a clockwork mouse that needs help finding its way out of a maze.
The game is about 2 to 4 hours long for most players, and the entire thing is an FMV game made from 512 video files, most of which are 1 to 2 seconds long. My main collaborators were Ben Orr (Unity Development) & Will Wood (Musical composition & recording). We were self funded, & learned a lot making our game. Personally, a big thing I learned is that being open about a crazy idea and finding the right people willing to risk their time led to one of the best creative experiences of my life.
We started production in September 2024 and launched the game on October 2nd 2025. Ben and I estimate we each put in over 1200 hours on the project, and for me much of that was spent building little sets and puppets and taking over 18,000 photos of them.
In 2024 I got an idea that I’d like to try telling a hand animated story about 15 to 30 seconds at a time on TikTok where viewers could suggest what happened next. I had previously animated a music video called Tomcat Disposables, and wanted to imagine a different ending for the protagonist, the mouse. While I had a lot of fun setting up a little stage and animating the mouse in the first room of what would become a maze, viewers didn’t interact with it quite in the way I hoped, and I realized I really wanted to tell a full story and that maybe a game would be a better medium to do so. My friend Ben had been teaching himself how to develop projects in Unity, so I asked if he’d join me on a weird adventure with no budget.
There have been some amazing games using stop motion or visuals styled to look like stop motion. The Neverhood was an early pioneer where they created sprites by animating claymation characters on a green screen, and then compositing them into photographed clay sets. Games such as Harold Halibut and The Midnight Walk used an incredible process where they physically made their assets, then 3D scanned & rigged them to create stunning 3D computer animation that emulates stop motion extremely well.
When I pitched to Ben that what I wanted to do was to instead literally put our mouse into each physical set, and then animate every single action it can take in the game by hand, in situ, he rightly told me I was crazy and asked why we shouldn’t create a sprite instead. One of my reasons was that I’m not very good at green screen and compositing yet. The other is that I’m really obsessed with physical objects & light. The third is I wanted to see if we could make a small-scope game where we could figure out how to do it all literally with old-school stop motion techniques (except using modern DSLR cameras) I was obsessed with the idea that our little mouse would cast perfect shadows, reflections & light scatter that made it feel like it perfectly sat in its world… because we would be doing it with real photos.
Luckily for me, since I wasn’t the one who would have to figure out how to dynamically sequence hundreds of video files and was completely out of my depth, Ben was game.
After experimentation & a lot of thought, Ben’s approach in Unity was to use its built in video player projected onto the canvas, and then layer transparent buttons for interactable elements over the top. For each room in our maze, I had to provide him with a looping, idle animation of the mouse near the center of the room, and then animations for the mouse entering and exiting through each door, and additional animations for the mouse interacting with any objects or puzzles. So, for example, if a room had 2 doors he needed 5 animations (enter/exit for each door and an idle animation)
The scripts Ben wrote keep track of which animation is currently playing and then, when the player clicks a button, it queues the appropriate animation or sequence of animations next, and times things so that there isn’t a noticeable gap between when each animation ends and the next one begins. The result is like a smoke and mirrors magic trick; it looks very realistic in a way that we wouldn’t have been able to touch with 3D rendered visuals just the two of us… because no rendering is taking place; it’s playing our 24fps stop motion clips made from high definition photographs.
Our process was experimental, time intensive and was a ship that was VERY hard to steer. If something wasn’t quite right with our layout and gameplay in one of the rooms, we couldn’t just go in and make quick edits; instead the entire room would have to be re-animated to maintain continuity (and even our simplest rooms were created via 180 photos). So the thing we did first was carefully plan & scope the number of rooms, maze layout, puzzles & write detailed documentation to follow & committed to sticking to that scope to limit re-shoots (even so we ended up re-shooting 10 of our 70 rooms).
One of my dreams for this project was to combine my love of theatrical set design, stop motion, silent film and 90’s point and click games. When I contacted Will to share with him what Ben & I were up to, he very kindly offered to join up with us and create music to complete the experience we were creating. Since we didn’t have any budget, he used his home recording studio and played all of the instruments for our game’s score. To write the music, we gave Will examples of gameplay footage from each area of the maze & notes on the general feeling we hoped for, and Will sat with the footage & created music that ranges from beautiful to haunting & really works for a modern silent film. Given that he’s incredibly experienced and skilled, we didn’t meddle much in his process, instead we just defined a general framework and then listened to what he made to match it, which was lovely.
I was extremely lucky to work with Ben & Will. We had great creative synergy, encouraged each other, solved problems constructively and we’re collectively proud of the result as a piece of art. I think something that helped is that we had honest conversations at the start of the project. Since we didn’t have funding, we agreed on a revenue share that felt fair to everyone. We also set a rule that none of us would spend anything out of pocket - we would rely on the tools and materials we already had on hand, that way we were all risking something equal: our time. Time is, however, incredibly valuable & I feel really lucky that they both believe enough in the idea to contribute theirs.
If you’re doing something as a passion project, working with people you have a great time with is key. There’s no sense risking your time if you aren’t having fun doing so. We also learned that while our first go at this worked, it only worked for a short game as it just isn’t scalable. Based on what could be improved, we’ve already imagined a framework to still use old-school stop motion that, with a larger team, could scale for a much longer game. I also learned we got really lucky because we all happened to have enough time outside our day-jobs to pull this off. If we try this again, we’ll see if we can secure at least a bit of funding first. Finally, I learned that making a game with the right team can be a blast!
Thanks for reading my ramblings! Since I’m brand new to game development, I know that I know very little about the field and welcome people’s thoughts, advice & questions. If people have questions about the backend of our game, I’ll ask Ben for help as in that realm I’m as lost as a mouse in a maze.
We are developping a game called Runeveil, and right now we have a live demo and we have a big problem which we cannot agree on, how much content should be in a demo?
Our game is a sequence roguelike deckbuilder, just think of it as any deckbuilder. Our final build is going to have 7 playable wizards each with 63 cards, and about 400-500 shop objects, and 7 arenas each with own ascensions. So a lot of final content. For the demo right now we have 3 playable wizards BUT we have a problem (ish)
Right now our demo has about 10-15 hours of gameplay and a lot of people who played our demo played a lot, our median is like a little higher than 1 hour which is insane compared to our other games. Yesterday we were watching a streamer who played for 3 hours straight and said they would like to try more combos
here is the problem. We can only have 1 playable wizard BUT we have a mechanic called dual deck where the player can choose 1 more deck to fuse into their deck and play with essentially 2 pools. I want to show that mechanic and to do that i need the player to be able to access 3 wizards. But this in the end makes it so the player is almost able to play %25 of the content.
One thing i have in mind is maybe i can limit the number of runs player can do? Maybe 3 runs and thats it but 1- i dont know how to do that and if it can be bypassed or not and 2- it feels bad
Another solution is we can lock the game into 1 mage and just lcok the dual deck mechanic for the demo
The reason we are afraid of this is because there have been times where me as a player who played the demo with a lot of content for 10-15 hours because i liked it a lot and the game wasnt out yet, and when the game came out as early access (which we will do) i did not buy it because i felt like i got what i wanted from the game.
We are afraid of this situation so as a player, how do you feel about the demo content of the game, and if you were me, what would you do?
Hello guys,
I recently scrapped my previous character model and started over from scratch.
Normally I follow a strict concept-to-3D pipeline, but this time I tried “winging it” without a solid concept first… and it completely fell apart. So I went back and started rebuilding the character based on a fan art illustration I drew earlier (first image in the link below).
Current progress / setup:
* Modular mesh setup (Hair, Head, Eyes, Torso, Arms, Hands, Pelvis, Legs, Feet)
* Carefully maintained seam normals between separated parts
* Palette-based texture workflow for dynamic color changes in Unity
* Baked shading into Vertex Colors to avoid overly flat shading
* Eye tracking using a “Sight” dummy
* Morphers(Blendshapes) for blinking, pain, anger, etc.
Next step is basic locomotion rigging (Idle/Walk/Run), then moving into base clothing like T-shirts and jeans.
A couple technical questions:
Also, how do the facial expressions feel so far? I’m debating whether to push toward a heavier/more detailed aesthetic, but I’m not sure if that would actually improve the look.
Would love to hear any feedback or criticism.
| This is literally my dream come true... Thought I'd share with you guys because this sub has been really inspiring to me throughout my game dev years. So thank you all! Steam page if anyone is interested: https://store.steampowered.com/app/3986670/YOU_ARE_THE_MONSTER/ [link] [comments] |
I’m working on an FPS wave-based zombie game in Unity, and right now my enemy damage system is very basic:
- Zombie moves toward player
- If player is inside attack range / physics sphere during attack
- Player takes damage
Technically it works, but gameplay-wise it feels kinda flat. The zombies don’t feel “dangerous,” just like moving damage colliders.
I’m trying to figure out what actually makes melee zombie combat feel tense and skill-based in a wave-based FPS.
Some things I’ve been thinking about:
- Wind-up attacks
- Dodgable attacks
- Different attack timings
- Group pressure / surrounding
- Hit reactions
- Animation commitment
- Stagger resistance
- Movement manipulation
- Enemy syncing/desyncing attacks
Basically, what mechanics make close-range zombies difficult in a satisfying way instead of just “enemy touched player = damage”?
Also curious about balancing:
Should normal zombies be 1-shot headshot kills in this type of game, or does that usually make the gameplay too easy once player aim improves?
Would appreciate examples from games that handled this well.
Apple rejected our indie game Stunt Paradise under Guideline 4.3(a) and classified it as “SPAM”.
The strange part is that this is a premium game we developed over almost 3 years. The game already released on PC and consoles in 2024, passed certification on those platforms, and received very positive player reviews.
The game is also available on HTML5 platforms, where it has reached an audience of nearly 5 million players.
The project contains:
We publicly documented development throughout the process and even shared technical breakdowns of our physics and gameplay systems during development.
So getting a “spam/template/repackaged app” rejection from Apple was honestly shocking for us.
We already submitted an appeal, but this experience was extremely frustrating after spending years building the game.
Has anyone else experienced something similar with App Review lately?
Co-founder was working for Blizzard before he started Moon Studios and gathered around 20 developers for Ori & The Blind Forest
Surely a developer at Blizzard wouldn’t have enough money to pay all those salaries
Do they get funding, do the developers do pro-bono work?
I’m not very familiar with game dev
Hey all,
I've been wanting to make a career pivot into gaming & I finally caught a break at a very well known japanese publisher.
I applied mid april, and they just got back to me asking for a recruiter screen.
My question is, is it normal for a phone screen to be scheduled 2 weeks out?
I've been interviewing for the past month and all my other phone screens were a couple days after the recruiter reached out.
Any guidance and advice into how interviewing at gaming companies usually flows would be greatly appreciated.
Thanks!!
Two-person indie studio here. Our game launches on Steam in July, currently in demo, finishing the full version. We found out our game has been ripped and republished as a Douyin/TikTok mini-game in China.
Not "inspired by." They extracted our Unity assets directly, 3D models/meshes, textures, animations, sound effects, music, our 200-node skill tree (Which is completely garbage and unbalanced / unplayable after the demo content, and not complete for the full game, but many effects already are working or “kinda working”), particles etc... They even recompiled in a way, and put ads into the game.
So one “dumb” error we already learned: Don’t put your full games content (even if not ready) in the demo, and trying to “protect” it with code #if… scriptableObjects or however..
On one hand, this is unauthorized distribution of our IP. Assets...
On the other hand, it's accidentally “free marketing”, although they have a different name and it's only "visual marketing" so not sure if it's even marketing... some chinese players reached out to us asking why the demo on Steam does not have “the full version”, when the full version comes out… and overall it seems like they enjoy the game even the unbalanced shitty rip off version on Douyin.
But the game looks so crappy, and cheap eg. no shadows, some shaders / materials missing and as I said, unplayable so this also kinda “hurts” our image as a Studio / game, we put so much effort and love into this game that it really bothers us.
We're 2 months from full release with a lot of work still to do on the actual game. Systems etc. missing…And not sure what to do now.
What we’re considering:
Question:
Tldr:
Our Game got stolen and reuploaded as a mini-game. What should we do?
edit:
If you have a Douyin account, it would help if you could report / flag the game for IP infringement. Thanks!
Hey. Sharing a Survey here for Gamedev wage transparency. There's very little public data on this, and the goal is to produce findings that are genuinely useful to developers when negotiating pay or evaluating job offers. anonymous and takes up less than 5. https://maastrichtuniversity.eu.qualtrics.com/jfe/form/SV_4YCFQZvS6LXhQ46
Ill share my academic work once finished in November on this post, so anyone can be more knowledgable about your working industry
So I just recently found out that Outbound, a game I've been interested in has been released. However, it's safe to say that both the sales and reception of the game did not meet expectation.
It currently has mostly positive reviews on steam but is borderline mixed. A lot of people are pointing out that the game doesn't have a lot of things to do or is quite boring/shallow which brings me to ask you guys.
What makes a game Shallow or Deep?
Why do people think games like schedule I or Palworld is deep but outbound is shallow (btw I'm not trying to mock or defend any of the games here, just using them as examples). I have some theories and vibes as to why this is happening but let me know if this is correct or not.
I know in general a games progression consist of either :
but all the games mentioned above have a reward. If we break it down specifically, why does the progression of outbound feels unrewarding but schedule I does. My thinking is that aside from lack of content and slow progression, upgrading the look of a van doesn't really feel as interesting as building an building a drug empire. Specifically because the upgrades to the van doesn't really do anything gameplay wise, you still end up just driving a van at the end of the day where as when you build a drug empire, you start out by yourself but then is able to automate the process, which turns the game from just a simple package delivery game to a management sim.
What do you think? Also how do you guys make the progression system of your games?
I'd like to learn more about the design of the long term gameplay progression of a game as I am now about to wrap up my game's prototype and move on to the broader design and I don't want to make the same mistake and make my game boring after 1 hour.
The skill tree I made in Vanisha initially went through many, many iterations which took up a ton of time. I got the idea to make a seeded layout generator to save time, but as you can maybe guess I ran into a new problem of getting something that felt natural. Anyway, over many iterations and attempts I finally landed on something I was happy with that felt good to play and progress through
Vanisha is on its way to launch in October now and I figured I'd just open source some of the tools I used to work on it
The tool ships mainly as-is, with some edits made to generalize it and remove game-specific properties. The intention is that while it offers a good foundational way to generate a skill tree, a dev would likely want to modify it for their own use case
Skill Tree Generator: https://github.com/Vanisha-Game/skill-tree-generator
Vanisha skill tree in-game (3rd screenshot): https://store.steampowered.com/app/4555270/Vanisha/
After some time, I've learned patterns to reduce the number of unnecessary allocations I use in multithreaded or async rust code. A key enabler for this is that I can create an Arc<MyStruct> and then extract an Arc<dyn SomeTrait> for any trait that it implements. I can create and pass around all of these trait objects without creating new allocations. Win.
But this only works for traits that imply internal mutability. There doesn't seem to be a way to create an Arc<Mutex<MyStruct>> or equivalent, and then extract multiple Arc<Mutex<dyn SomeTrait>> or equivalent for all of the traits that it implements, so that those traits can have methods with &mut self receivers. Because I can readily only share internally mutable traits, this is causing several situations in which I have nested mutexes, up to a depth of 3 or 4, and this is not acceptable to me. I would rather rely on regular ol' mutability instead of internal mutability, so that I don't need all this nesting, but that requires a capability like above.
Is there an idiomatic way of accomplishing something similar, or am I going to have to invent this wheel myself?
Hi all,
I'm usually not one to post anything along these lines, but recent efforts to secure a position have left me feeling confused, frustrated, and with seemingly very few options. But despite that, I just feel like I am missing something and would very much appreciate some advice.
To give some background on myself, I'm a Software Engineer with 5+ years total experience mainly in the backend/systems/low-level space. The last 3+ years of my experience have almost been 100% dedicated to Rust after pivoting to it from C++.
In that time I've lead multiple teams, usually introducing Rust to an organisation or leading Rust projects fully from idea -> delivery. I'm not trying to pitch myself so tldr; is that I feel I can comfortably position myself in Senior or Mid-Senior roles.
I see Rust roles popping up all over the US and EU that fit my experience perfectly, maybe even feeling a bit overqualified for them to be honest. Many of them are remote, but most are "remote (US)" or "remote (EU)" which obviously immediately excludes me (South Africa, UTC+2)
Of the positions that do advertising global remote, I seem to constantly get rejected at odd stages. Like going entirely through the process, smiles all around, feeling like I have it in the bag until ghosted or: "We've decided to move forward with a candidate that <insert random reason here>". After some stalking I inevitably find that the new hire is based in a developed country.
I find this confusing and frustrating for a few reasons:
- I genuinely feel like my skills are a very strong match for many of the positions I apply to. I don't mass-apply (I even have a full version controlled resume and cover letter management repo to track every single tailored application)
- I personally feel like I have very good communication skills, with English being my first language (no offense to non-native English speakers intended at all). This, combined with my usually much lower asking salary than the global standard, seems like it would be a huge advantage.
- I have demonstrable experience, via open-source contributions on my GitHub, personal projects that are publicly viewable (I learned Fullstack Dev just for this)
- I make a strong effort to not just be another vibe coder. This is not meant to be an anti-AI post, but my point is that I'm clearly not just another kid that chucks everything into Claude to excrete another "I built this blazingly 🔥 fast 🚀 tool". I use AI as a "senior accelerator". This usually means that when asked to talk about my experience/projects/Rust internals and interview style questions, I can do it comfortably because I actually learned them.
Okay enough with reasons/ranting.
The actual point of my post was to ask others:
- Have you experienced something similar?
- Are there reputable companies out there hiring based on factors other than your birth lottery?
- Bonus question: How the hell does one find informal/freelance gigs as a Rust dev?
Disclaimer:
- preempting those saying that my experience description is vague, this is not intended to be a self promotion post or a job advert, feel free to DM me for more details if you'd like them.
- "this post is long as hell". Yeah sometimes my hyperverbal side comes out and I couldn't stand using an ounce of LLM to summarise this.
Thanks to those who read this
I got tired of MTP hanging on 256GB+ devices, so I built a bypass.
The architecture:
I'm mostly looking for feedback on handling JSON stream fragmentation in the Rust backend when the C++ side pushes data too fast.
I'll drop the repo link in the comments if anyone wants to check the code.
After a name change and a few weeks of work, I'm very happy to say we have a new release!
gpu-video is a hardware-accelerated video decoding and encoding library that integrates with wgpu and works on platforms that support Vulkan. This release is important for a few reasons.
Also, under the previous post somebody asked about latency measurements for our encoders. I forgot to answer them then, but have some measurements ready today.
Per-frame latency, on a 3050Ti Mobile with an i7-11800H, 3600 frame-long video in 1080p, at 1Mb/s
| Codec, preset | Average | P99 |
|---|---|---|
| H.264, low latency | 2.35029ms | 2.97314ms |
| H.264, high quality | 5.22716ms | 5.97846ms |
| H.265, low latency | 2.10255ms | 2.56490ms |
| H.265, high quality | 8.23510ms | 9.29018ms |
Repo link: https://github.com/software-mansion/smelter/tree/master/gpu-video
Today we are pleased to share that Pyrefly, a fast type checker and language server for Python, has reached stable v1.0 status, meaning we are confident that Pyrefly is ready for production use.
Pyrefly was first released as an alpha in mid-2025 and followed up with a beta in November of that year. Since then, we have shipped over 60 minor releases: fixing hundreds of bugs, adding the features you’ve been asking for, and improving performance to be one of the fastest tools out there.
This would not have been possible without our amazing open-source community. To everyone who filed GitHub issues, submitted pull requests, gave us feedback at conferences, or joined us on Discord: thank you.
We've published a blog post explaining what v1.0 means exactly, and what's next for Pyrefly.
Below is a summary of the changes to Pyrefly since the Beta release. The full release notes for v1.0 can be read on our Github.
We've continued to push Pyrefly's performance since the speed improvements we shared in February. Since beta:
(Tested on an M4 Macbook Pro using open-source benchmarks from type_coverage_py and ty_benchmark.)
Compare the performance of Pyrefly and other Python type checkers on our regularly updated benchmarking suite, which runs against 53 popular Python packages.
A new preset configuration option provides named bundles of error severities and behavior settings.
| Preset | Description |
|---|---|
off | Silences all diagnostics. Useful for IDE-only users or if you want total control of which errors are enabled. |
basic | Low-noise, high-confidence diagnostics only (syntax errors, missing imports, unknown names, etc.). Ideal for unconfigured projects or IDE-first users. |
legacy | For codebases migrating from mypy. Disables checks mypy doesn't have. pyrefly init now emits this preset automatically when migrating from a mypy config. |
default | The standard Pyrefly experience. Equivalent to having no preset. |
strict | Enables additional strict checks on top of the default preset. For users who want to avoid Any types in their codebase. |
See the configuration docs for details.
We’ve made improvements to the out-of-the-box experience for projects without a pyrefly.toml.
pyrefly init would commit to disk.)We've been hard at work making the type checker robust and feature-complete, with a focus on driving down false positives and improving type quality in real-world code bases. Here are some highlights:
source.fixAll.RootModel, pydantic-settings, and pydantic.dataclasses..ipynb IDE support has reached full parity with .py files, with rename, find references, code actions, and document symbols all supported.Pyrefly ships with tools to aid with adopting type checking in an existing codebase. Two new tools since beta:
pyrefly coverage report outputs a JSON report with annotation completeness and type completeness metrics per function, class, and module, so you can track coverage over time.Going forward, we’ll switch from a weekly to monthly cadence for minor (1.x.0) releases, with patch releases in between as-needed for critical fixes. We’ll continue providing release notes for minor versions, so you can see what’s new in each release.
I have been playing Ratatui, and while great, it is more low-level than most other UI libraries. I equate it to SDL, Raylib, SFML and other graphics libraries, and not like Flutter, React, Egui etc.
I do realise that Ratatui is for TUI in the terminal and what I mentioned as examples is GUI or for graphics, but this was just to give a comparison.
Are there any TUI frameworks that use Ratatui to render but have state-management, pages/screens etc? I only found tui-realm and rat-salsa but I am not sure if there are other or alternatives to Ratatui that is more of a framework instead of a library.
I've been writing a bunch of GPUI code at the moment; and had a mixture of different patterns on how to fetch data async then display it. In the end I settled on this pattern; which allows you to write synchronous functions to be called inside Render implementations, while still doing async work behind the scene.
I did not use AI to write this article; although I've noticed that the internet has made me so AI brained that half the sentences triggered me.
Ok, it's not done, it's just the first beta of the rewrite, and is missing a lot of features, but it is functional (Not 100% sure the edge subdivision is fully functional)
I used iced for the GUI, because I found that it was the easiest UI library to use. Egui couldn't center 2 elements at once both vertically and horizontally (at least not easily). I decided tauri wasn't worth it because I didn't want to deal woth javascript, and didn't want to have to use things like dioxus or somthing. That also ruled out freya. I couldn't get egpui to compile (probably can now, but I made the decision to use iced while I was still on an atomic distro). And I just didn't want to use GTK or qt.
ALSO WHY WAS IT SO DAMN HARD TO FIND A GOOD OBJ PARSER!!!???? I tried 3 or 4 of them, and only one could do what I needed, and it isn't what comes up when you type obj into crates.io.
You can find it here: https://github.com/SmoothTurtle872/particle3d
(Other than the edge subdivision code in the old python versions (if you were to look back) there is vibe coding. The python was made over 2 years ago, when I was younger and didn't know the maths or numpy, and didn't have my same stance on AI)
I would like some feedback, and some testers. Also whats the easiest way to compile for mac?
Built my own SVM classifier from scratch in Rust. It uses SMO optimization, have linear and rbf kernel, uses grid search to tune the hyperparameters.
I tested it on two datasets one using Linear dataset and other using RBF, these were the results:
| Dataset | Kernel | Accuracy | Recall | F1 |
|---|---|---|---|---|
| Banknote Auth | Linear | 96% | 94% | 95% |
| Breast Cancer | RBF | 93% | 100% | 92% |
The plot.rs file, used for plotting only was written using AI as I could not wrap my head around plotters crate, apart from that everything was by my own.
Repo Link: Github Repo
Happy to get some feedback!
Hey, I'm looking for some guidance on how to design middleware for my crate flowstate.
Flowstate is a library for implementing self-executing workflows as a collection of self-describing states, locally encapsulating their transition logic.
I'd like to add middleware, which would at a basic level allow wrapping states and workflows.
I've implemented flowstate_middleware_tracing as a test case for this, as I don't want to "special case" the features I personally need. This crate depends on the unstable_middleware feature in flowstate. Usage looks like this:
let middleware = TracingMiddleware::default() .with_workflow_span(|m: &WorkflowMetadata| { info_span!("custom workflow span", my_workflow_name = m.name) }) .with_state_span(|m: &WorkflowStateMetadata| { info_span!("custom state span", my_state_name = m.name) }); let result = workflow.run_with_middleware(middleware); This works ok, but I'd really like to add some way to expose per-state fields which can be added to the span.
Initially, I had thought to add a WorkflowState::fields method. However, tracing doesn't allow the addition of dynamic fields, so this doesn't really work.
The only solution I can think of is to allow the WorkflowState implementation to define a make_span method, but I can't think of any way to do this that would not require a "special case" (i.e. only works for tracing) implementation in flowstate.
If anyone has any ideas, I'm open to suggestions!
The litmus test would be that the middleware implementation is flexible enough to allow flowstate_middleware_tracing to have different fields, message, etc. per state, without requiring flowstate to take a dependency on tracing.
Hey everyone, I stumbled upon an article / blog post here, the gist of it was that you can "micro" optimize the generated async state machine enum by writing the code in a specific way
I don't remember (that's why I wanna read it again) much but it was basically changing the return type from Future to something else way more specific which in turn would remove one state from the state machine enum \ And maybe even calling a function instead of await, I don't really remember...
Anyways, I cannot find it anymore, I've been looking on google ("site:reddit.com r/rust manual async" or "async opti", etc)
If anyone remembers the post and can find it, I would love a link :)
I’d like to learn how to write blog posts that engineers will actually read. Curious to hear what you look for or hate in an engineering blog post.
Hi,
So I spent a few months already learning how to make web apps using echo, templui and datastar. (I am new to making software in general)
Based on the documentation for templ prop drilling I understand that it can deal with the built in ctx which is cool.
But I am using echo and my original render utility function worked with echo's request.context and I couldn't figure out how to use that in the above mentioned templ feature.
For now I did this ugly solution which I don't know if this is correct or not (it is working at least):
type contextKey string const ( EchoContextKey contextKey = "echoContext" ) func Render(c echo.Context, component templ.Component) error { ctx := c.Request().Context() ctx = context.WithValue(ctx, EchoContextKey, c) return component.Render(ctx, c.Response()) } Essentially turning echo.context into a context value inside of ctx... I know, this must be wrong.
I know using ctx for state management is a shit idea and I don't want to do that but there are instances where passing values via ctx to a deeply nested templ element would be as helpful as a handle for a screwdriver.
Thank you if you red-(d)-it all!
I built a Go CLI tool https://github.com/aminshahid573/gen
Now I am trying to set up proper distribution (Homebrew, Scoop, releases), but I’m honestly confused about how the whole pipeline works.
Right now I used AI to generate my setup, but I don’t fully understand it and I feel like I’m just copy pasting things without knowing what I’m doing and not aure is that working or not..
What I want is..every time I create a new version tag (v1.0.0, v1.0.1, etc.) gitHub Actions should automatically:
my current setup is
`.github/workflows/release.yml`
https://github.com/aminshahid573/gen/blob/main/.github%2Fworkflows%2Frelease.yml
---
`.goreleaser.yml`
https://github.com/aminshahid573/gen/blob/main/.goreleaser.yml
---
Upto i created GitHub repo for CLI, reated Homebrew tap repo (`homebrew-gen`) and Wrote formula manually
I am confused that do I actually need `HOMEBREW_GITHUB_TOKEN` or is `GITHUB_TOKEN` enough?
how does GoReleaser exactly update Homebrew tap repo?
or do I need to manually create formulas or GoReleaser handles everything?
What is the correct minimal setup for github Actions,GoReleaser,homebrew tap, scoop bucket .
If someone can explain correct clean workflow from scratch and minimal working config, what each part actually does
that would really help me understand instead of just copy pasting AI configs.
Testo is a modular testing framework for Go built on top of testing.T. It is focused on suite-based tests and has an extensive plugin system.
https://github.com/ozontech/testo
Some features:
T methods, add its own methods and more.Small example:
// base T with xfail plugin (adds t.XFail() method) and parallel plugin // which makes all tests parallel by default. type T struct { *testo.T; xfail.PluginXFail; parallel.PluginParallel } type Suite struct{ testo.Suite[T] } func (Suite) TestHelloWorld(t T) { t.Log("hello from testo!") } It already powers thousands of end-to-end tests in daily and is published as stable v1.0.0 for everyone to use under Apache-2.0 license https://github.com/ozontech/testo
P.S. It started as my personal project, and I am very happy it has come such a long way to be finally published.
I want to get into building TUI's, but I don't really get bubbletea at all, even the examples still seem confusing. Any resources to help learn bubbletea?
Hello, I am a C# developer trying to get better at Go, and I am trying to understand the idiomatic way to handle reusable behavior on small domain types.
In C#, I would probably reach for extension methods or generic abstractions. In Go, I am not sure what the right mental model is.
Here is the kind of problem I keep running into.
I receive JSON payloads where many fields come in as strings, but in my domain they are not all “just strings.” For example:
type Cycles string type CycleCount string type WorkOrder string type MachineNumber string I like defining these as separate types because it makes my validation/transformation code more explicit. A Cycles value is not the same concept as a WorkOrder, even if both are represented as strings in the incoming JSON.
For example, I may want behavior like this:
type Cycles string func (c Cycles) IsEmpty() bool { return string(c) == "" } func (c Cycles) IsPresent() bool { return string(c) != "" } func (c Cycles) ToInt() (int, error) { value, err := strconv.Atoi(string(c)) if err != nil { return 0, &ParseError{ Field: "cycles", Value: string(c), Err: err,} } return value, nil } func (c Cycles) IsPositive() (bool, error) { value, err := c.ToInt() if err != nil { return false, err } return value > 0, nil } This works, but the issue is that I end up writing almost the same methods over and over for many string-backed types.
So my first question is:
Is defining small domain types like type Cycles string and putting behavior on them a reasonable Go approach, or am I already thinking about this wrong?
The approaches I have considered are:
Something like:
type StringValue struct { raw string } func (s StringValue) IsEmpty() bool { return s.raw == "" } func (s StringValue) IsPresent() bool { return s.raw != "" } func (s StringValue) String() string { return s.raw } type NumericString struct { raw string } func (n NumericString) ToInt() (int, error) { return strconv.Atoi(n.raw) } func (n NumericString) IsPositive() (bool, error) { value, err := n.ToInt() if err != nil { return false, err } return value > 0, nil } Then maybe:
type Cycles struct { StringValue NumericString } But this seems awkward because my JSON payload is shaped like this:
{ "cycles": "100" } And I want this:
type Payload struct { Cycles Cycles `json:"cycles"` } If Cycles is a struct, then I think I need custom JSON marshaling/unmarshaling just to preserve the simple JSON shape. That feels like it may create more boilerplate than it removes.
I also considered interfaces like:
type StringConverter interface { ToInt() (int, error) } func IsPositive(v StringConverter) (bool, error) { n, err := v.ToInt() if err != nil { return false, err } return n > 0, nil } Then each domain type could implement ToInt().
That seems better than a large validator hierarchy, but I still have to write ToInt() for every type.
I also started thinking about larger validator-style interfaces, but that quickly started to feel like I was forcing a C#/OO design into Go.
This seems like the most promising option so far:
// package name here is important package validation type StringNumeric interface { ~string } func ToInt[T StringNumeric](field string, v T) (int, error) { n, err := strconv.Atoi(string(v)) if err != nil { return 0, &ParseError{ Field: field, Value: string(v), Err: err,} } return n, nil } func IsPositive[T StringNumeric](field string, v T) (bool, error) { n, err := ToInt(field, v) if err != nil { return false, err } return n > 0, nil } Then:
type Cycles string type CycleCount string ok, err := IsPositive("cycles", Cycles("100")) ok, err = IsPositive("cycleCount", CycleCount("17")) This seems like it reduces the boilerplate the most, but it also loses the method-call style:
cycles.IsPositive() and becomes:
validation.IsPositive("cycles", cycles) Maybe that is just the Go way, and I need to get used to packages plus functions instead of extension methods.
I am not trying to build a framework for the sake of building a framework. I am a solo developer and I am trying to avoid writing the same validation/conversion methods for dozens of string-backed JSON fields.
What is the idiomatic Go approach here?
Should I:
type Cycles string, type WorkOrder string, etc.~string for common validation/conversion behavior.Or is there another Go pattern I am missing?
I'm learning Go, and I've gotten to goroutines. I don't understand the concept of `wg.Add(1)` (`sync.WaitGroup`), does it increment a counter?
hey guys so i wrote a database, NornicDB, written in golang.
https://github.com/orneryd/NornicDB/releases/tag/v1.1.0-preview-1
it got mentioned in research last month. https://arxiv.org/pdf/2604.11364
the researcher actually commended on issue #100 here:
https://github.com/orneryd/NornicDB/issues/100#issuecomment-4296916032
and i’ve released a preview tag for people to play with. 1.1.0-preview. docker images, mac installer, or build it locally.
the idea is to convert memory decay into policy that can be declared in cypher. it started with Ebbinghaus but as the researcher pointed out, is insufficient for agentic memory.
with the policies you can define the decay curve profiles. when you enable memory decay, it sets up policies to match the Ebbinghaus-Roynard model as he describes in the paper. that plus the “canonical graph ledger” bootstrap enables you to move a lot of glue code into the database using the primitives i provide. (cardinality, temporal no-overlap constraints, etc…)
the way it works is a visibility suppression layer in between Cypher and badger. on-access meta is stored in a separate index. there are functions to reveal/decay scoring functions in cypher for debugging queries or bypassing the visibility layer.
it’s research backed. I’m writing my own research paper in response to 4 different papers converging on my database implementation.
726 stars and counting. MIT licensed. neo4j and qdrant driver compatible.
enjoy!
| Hello! I'll be using this subreddit to showcase the progress of my Minecraft-like game. Why another Minecraft game? Well, it started as a personal project to learn how to interact with components through code, using graphics APIs such as Vulkan, but without using any game engine like Godot or Unity, just only with coding. I decided to use Rust because I wanted to learn the language, with a couple of libraries, and also learn about rendering, algorithms ... If you are interested, I can share my YT channel where I try to explain all the technical implementation. Here are a couple of screenshots showing the current state of the game. Debug metrics (in the future I will remove many of them once solved the performance issue) [link] [comments] |